package com.algorithm;

/**
 * 调整数组顺序使奇数位于偶数前面
 * 题目：输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有的奇数位于数组的前半部分，所有的偶数位于数组的后半部分，并保证奇数和奇数，
 * 偶数和偶数之间的相对位置不变
 * 思路：循环数组，当遇到奇数时，获取奇数值，并定义奇数应该移动到的位置j;然后将当前奇数所在的位置记录下来为k;
 * 遍历当前奇数位置k到奇数应该移动到的位置j,依次将前一个偶数数据复制到后面位置；
 */
public class ReOrderArray {


    public static void main(String[] args) {
        int [] array= {1,3,4,6,7};
        int [] arr=reOrderArray(array);
        for(int i=0;i<arr.length;i++){//循环数组
            System.out.println(arr[i]);//输出数组元素。
        }
    }
    public static int[] reOrderArray (int[] array) {
        // write code here
        int j=-1;//记录奇数部分最后的一个奇数所在位置
        for(int i=0;i<array.length;i++){
            if(array[i]%2==0){
                continue;
            }else{
                j++;
                int jishu=array[i];
                int k =i;
                while(k>j){
                    array[k]=array[k-1];
                    k--;
                }
                array[j]=jishu;
            }

        }
        return array;
    }
}
